package com.splic.product.service;

import cn.hutool.json.JSONObject;
import com.splic.product.domain.VoiceTransfer;

import java.util.List;

/**
 * 转写事件Service接口
 * 
 * @author singe
 * @date 2023-08-17
 */
public interface VoiceTransferService
{
    /**
     * 查询转写事件
     * 
     * @param id 转写事件主键
     * @return 转写事件
     */
    public VoiceTransfer selectVoiceTransferById(Long id);


    /**
     * 查询转写事件列表
     *
     * @param voiceTransfer 转写事件
     * @return 转写事件集合
     */
    public List<VoiceTransfer> selectPageList(VoiceTransfer voiceTransfer);


    /**
     * 查询转写事件列表
     * 
     * @param voiceTransfer 转写事件
     * @return 转写事件集合
     */
    public List<VoiceTransfer> selectVoiceTransferList(VoiceTransfer voiceTransfer);

    /**
     * 新增转写事件
     * 
     * @param voiceTransfer 转写事件
     * @return 结果
     */
    public int insert(VoiceTransfer voiceTransfer);

    /**
     * 修改转写事件
     * 
     * @param voiceTransfer 转写事件
     * @return 结果
     */
    public int update(VoiceTransfer voiceTransfer);

    /**
     * 删除转写事件信息
     * 
     * @param id 转写事件主键
     * @return 结果
     */
    public int deleteById(Long id);

    /**
     * 新增或修改转写事件
     *
     * @param voiceTransfer 转写事件信息
     * @return 结果
     */
    public int saveOrUpdate(VoiceTransfer voiceTransfer);

    VoiceTransfer judgeTransfer(VoiceTransfer transferReq);

    Integer updateTransfer(VoiceTransfer transferReq);

    void callbackTransfer(String orderId, String status) throws Exception;

    List<VoiceTransfer> searchUserList();

    VoiceTransfer apiVoiceTransferById(String transferId);

    void transferCallbackTask();

    void callbackDeepgram(JSONObject response);
}
